package cn.lg.soar.core.propertie.security;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Lazy;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 权限模式配置
 * @author luguoxiang
 * @date 2022/4/4
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
@Lazy
@Getter
@Setter
@ConfigurationProperties(value = "lg.security.path-pattern")
public class PathPattern {

    /**
     * 登录接口权限（系统通过拦截返回的 refreshToken 生成 accessToken）
     */
    private Set<String> login;

    /**
     * 匿名访问的接口权限（任意访问，无需登录）
     */
    private Set<String> anon;

    /**
     * 认证访问接口，需登录后访问（无需验证角色权限）
     */
    private Set<String> auth;

    /**
     * 指定用户类型可以访问的接口，需登录且是对应用户类型的访问（无需验证角色权限）
     */
    private Map<Byte, Set<String>> authByType = new HashMap<>();

}
